package com.hzy.elastic.entity;

public enum QueryEnum {
    query("query"),
    bool("bool"),
        must("must"),must_not("must_not"),should("should"),
        // 范围查找
        range("range"),
            lte("lte"),lt("lt"),gte("gte"),gt("gt"),
        // 按属性分词查找，入参被分词
        match("match"),
        // 多属性分词查找，入参被分词
        multi_match("multi_match"),
        match_all("match_all"),
        // 按属性精确查找，入参不会被分词
        term("term"),
        // 按属性多值精确查找，入参不会被分词
        terms("terms"),exists("exists"),missing("missing"),
        // 匹配前缀
        match_bool_prefix("match_bool_prefix"),
         // 短语查找，入参分词，但是词序不变
        match_phrase("match_phrase"),
        // 短语前缀匹配
        match_phrase_prefix("match_phrase_prefix"),
        // 前缀检索，入参分词
        prefix("prefix"),
    filter("filter"),
    filtered("filtered");

    QueryEnum(String name){
        this.name = name;
    }

    private String name;

    public static QueryEnum get(String type){
        for (QueryEnum queryEnum: QueryEnum.values()){
            if (QueryEnum.exists.name.equals(type)){
                return queryEnum;
            }
        }
        return null;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
